﻿namespace @(Model.Namespace).IApplication
{
    /// <summary>
    /// @(Model.CnName)应用层接口
    ///</summary>
    public interface I@(Model.Name)Application
    {
        /// <summary>
        /// 获取@(Model.CnName)分页结果
        ///</summary>
        Task<PageResult<Get@(Model.Name)PageResultOutput>> GetPageResultAsync(Get@(Model.Name)PageResultInput input);

        /// <summary>
        /// 获取@(Model.CnName)分页列表
        ///</summary>
        Task<List<Get@(Model.Name)PageListOutput>> GetPageListAsync(Get@(Model.Name)PageListInput input);

        /// <summary>
        /// 获取@(Model.CnName)
        /// </summary>
        @if (Model.IsGuidKey)
        {<text>
        Task<Get@(Model.Name)Output> GetAsync(BaseGuidEntity input);</text>}
        else{<text>
        Task<Get@(Model.Name)Output> GetAsync(BaseKeyEntity input);</text>}

        /// <summary>
        /// 获取全部@(Model.CnName)
        /// </summary>
        Task<List<Get@(Model.Name)ItemOutput>> GetAllListAsync();

        /// <summary>
        /// 修改@(Model.CnName)
        /// </summary>
        Task UpdateAsync(Update@(Model.Name)Input input);

        /// <summary>
        /// 新增@(Model.CnName)
        /// </summary>
        Task AddAsync(Add@(Model.Name)Input input);

        /// <summary>
        /// 删除@(Model.CnName)
        /// </summary>
        @if (Model.IsGuidKey)
        {<text>Task DeleteAsync(BaseGuidListInput input);</text>}
            else
            { <text>Task DeleteAsync(BaseIdListInput input);</text>}
    }
}
